package person.mybatisplusstudy.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 实体基础类.
 *
 * @author 林志鹏
 * @version 1.0.0
 * @date 2021/7/15 0:43
 */
@Data
public class BaseEntity {

    /**
     * TableId是主键注解，type类型为主键类型，auto为自动递增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    @Override
    public String toString() {
        return "BaseEntity{" +
                "id=" + id +
                ", createTime=" + createTime +
                ", isDelete=" + isDelete +
                '}';
    }

    /**
     * TableLogic用于逻辑删除，使用时，在查找的时候会默认过滤掉已删除的数据
     * 而不用显式地声明is_delete
     * 注意：这里只对自动注入地SQL生效（即自动生成的sql），其他的sql不可用.
     */
    @TableField("is_delete")
    @TableLogic(value = "0", delval = "1")
    private Boolean isDelete;
}
